<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../0js/vue.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/dayjs/1.10.6/dayjs.min.js"></script>
</head>
<body>

<div id="root">
    <h2>显示格式化后的时间</h2>

    <!-- 计算属性实现 -->
    <h3>现在是：{{fmtTime}}</h3>

    <!-- methods实现 -->
    <h3>现在是：{{getFmtTime()}}</h3>

    <!-- 过滤器实现 管道符|| , 过滤器，把time传递给timeFormat，timeFormat返回值直接替换了这个插值语法-->
    <h3>现在是：{{time | timeFormat}}</h3>

<!--     过滤器实现（传参）一层一层处理 mySlice可以定义在filters-->
    <h3>现在是：{{time | timeFormat('YYYY_MM_DD') | mySlice}}</h3>

    <!--属性使用过滤器-->
    <h3 :x="msg | mySlice">VUE</h3> <!-- v-model不支持-->
</div>

<script type="text/javascript">
    // 阻止vue在启动时生成生产提示
    Vue.config.productionTip = false

    //全局过滤器
    Vue.filter("mySlice",function(value){
        return value.slice(0,4)
    })

    const vm = new Vue({
        el: "#root",
        data: {
            time: 1629561977603, //时间戳
            msg:"vue1111"
        },
        computed: {
            fmtTime() {
                return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')
            }
        },
        methods: {
            getFmtTime() {
                return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')
            }
        },
        filters: {
            // 第一个参数就是管道符前面的time，第二个是传入的参数
            timeFormat(value,str='YYYY年MM月DD日 HH:mm:ss'){
                return dayjs(value).format(str)
            },
            // 局部过滤器
            /*mySlice(value){
                return value.slice(0,4)
            }*/
        }
    });

</script>
</body>
</html>